#ifndef LM2904_DRIVER_H
#define LM2904_DRIVER_H

#include <stdint.h>
#include <math.h>
#include "iot_errno.h"
#include "iot_adc.h"

#ifdef __cplusplus
extern "C" {
#endif

// 用户可调整参数
#define ADC_CHANNEL_ID       1       // RK2206 ADC通道号（0-7）
#define MODULE_VCC           5.0f    // 模块供电电压
#define SILENT_VOLTAGE       0.5f    // 静音基底电压（需实测）
#define DB_BASE              35.0f   // 最小分贝值
#define DB_MAX               105.0f  // 最大分贝值
#define FILTER_WINDOW_SIZE   7       // 滑动窗口尺寸
/**
 * @brief 初始化噪声传感器驱动
 * @return IOT_SUCCESS成功，其他值为错误码
 */
int LM2904Init(void);

/**
 * @brief 获取滤波后的噪声分贝值
 * @return 噪声级别（dB），失败返回NAN
 */
float GetFilteredNoiseLevel(void);

#ifdef __cplusplus
}
#endif

#endif // LM2904_DRIVER_H